package com.yg.utils;

import com.yg.config.exceptionhandler.GlobalException;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author: 备备
 * @Date:2020/11/11
 * @Description:com.yg.config 日期格式校验工具类  此版本不完善！用户输入'2020.0' 或'2020.02222'同样可以插入成功！
 * @Version:1.0
 */
public class DateValidationUtil {


    /**
     * @param oldDate 传入需要进行日期校验的字符串
     * @param format  指定要转换的日期格式 如："yyyy.MM.dd"、"yyyy.MM"
     * @return
     */
    public static String dateValidation(String oldDate, String format) {
        String newDate;
        SimpleDateFormat formated = new SimpleDateFormat("yyyy.MM");

        // 处理指定格式为"yyyy.MM"且传入的字符串长度大于"yyyy.MM"的长度
        if ("yyyy.MM".equals(format) && format.length() <= oldDate.length()) {
            oldDate = oldDate.substring(0, 7);
            formated.applyPattern("yyyy.MM");

        }
        //处理指定格式为"yyyy.MM.dd"且传入的字符串长度大于"yyyy.MM.dd"的长度
        else if ("yyyy.MM.dd".equals(format) && format.length() <= oldDate.length()) {
            oldDate = oldDate.substring(0, 10);
            formated.applyPattern("yyyy.MM.dd");
        }



        try {
            Date date = formated.parse(oldDate);
            return formated.format(date);
        } catch (ParseException e) {
            throw new GlobalException();
        }
    }
}
